package jdbc;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
/*
Algunos ejemplos b�sicos
 */

public class Jdbc {
    
    public static void main(String[] args) {
        /*        String driver = "org.apache.derby.jdbc.ClientDriver";
        String url="jdbc:derby://localhost:1527/sample;
        String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        String url="jdbc:odbc:conexion";
        String driver = "oracle.jdbc.OracleDriver";
        String url="jdbc:oracle:thin:@AU01PC11:1521:ORCL";
         */
        String driver = "org.gjt.mm.mysql.Driver";
        String url = "jdbc:mysql://localhost:3306/test";
        
        try {
            Class.forName(driver);
//            DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
        } catch (ClassNotFoundException ex) {
            System.out.println("Driver incorrecto/Driver no en classpath: " + ex);
            return;
        }
        Connection con = null;
        try {
            con = DriverManager.getConnection(url, "root", "12345678");
            
            
            Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            try {
                String sql = "create table Persona (nombre varchar(255), "
                        + " fechaNacimiento DATE, sueldo double)";
                int res = st.executeUpdate(sql);
                System.out.println("Resultado = " + res);
            } catch (SQLException sQLException) {
                System.out.println("Error: " + sQLException.getMessage());
                System.out.println("Código: " + sQLException.getSQLState());
                System.out.println("Código error: " + sQLException.getErrorCode());
            }
            
            String sql = "insert into Persona (nombre,fechaNacimiento,sueldo) "
                    + " values ('Luis', '2005-1-10' ,1123.45 )";
            st.executeUpdate(sql);
            sql = "insert into Persona (nombre,fechaNacimiento,sueldo) "
                    + " values ('Ana', '2005-1-11' ,2123.45 )";
            st.executeUpdate(sql);
            sql = "insert into Persona (nombre,fechaNacimiento,sueldo) "
                    + " values ('Paco', '2005-1-12' ,3123.45 )";
            st.executeUpdate(sql);
            sql = "insert into Persona (nombre,fechaNacimiento,sueldo) "
                    + " values ('Pepe', '2005-1-13' ,4123.45 )";
            st.executeUpdate(sql);
            
            String consulta = "select nombre,sueldo,fechaNacimiento from Persona";
            ResultSet rs = st.executeQuery(consulta);
            while (rs.next()) {
                System.out.println(rs.getString("nombre") + " "
                        + rs.getString("sueldo") + " "
                        + rs.getString("fechaNacimiento"));
                
                String nombre = rs.getString(1);
                double sueldo = rs.getDouble("sueldo");
                Date fecha = rs.getDate(3);                
                SimpleDateFormat sdf = new SimpleDateFormat("dd  MM  yyyy");
                System.out.println(nombre + " " + sueldo + " " + sdf.format(fecha));
            }
            
            rs.first();
            System.out.println(rs.getString("nombre") + " "
                    + rs.getString("sueldo") + " "
                    + rs.getString("fechaNacimiento"));            
            rs.close();
            
            st.close();
        } catch (Exception ex) {
            System.out.println("ERROR: " + ex);
            ex.printStackTrace();
        } finally {
            if (con != null) {
                try {
                    con.close();
                } catch (Exception ex) {
                }
            }
        }
        
        
    }
}
